package com.team.service;

import com.team.commons.dto.ProductDto;
import com.team.commons.vo.ProductDetailsVo;
import com.team.commons.vo.ProductListVo;
import com.team.commons.vo.ProductTypeVo;
import com.team.commons.vo.ProductVo;
import com.team.entity.Product;

import java.util.List;

/**
 * 产品服务
 * 对产品的列表查询
 * 产品详情
 * 产品模糊查询
 * 查询单个产品
 * 添加产品
 * 更新编辑产品
 */
public interface ProductService {

    /**
     * 默认获取列表餐品信息
     * @param current 当前第几页
     * @param state 状态 默认为全部  0为仓库中 1为上架  2待下架（无库存） 3回收站  4草稿箱  5回收站
     * @param type 产品类型 默认团建旅游  栗 团建旅游  常规旅游
     * @return
     */
    ProductListVo selectList(Integer current, Integer state, String type);

    /**
     *关键字查询
     * @param key 模糊查询目标
     * @param current 当前页数
     * @return
     */
    List<ProductVo> selectListKey(Integer current,String key);

    /**
     * 查询产品详情
     * @param productId 产品Id
     * @return
     */
    ProductDetailsVo selectProductDetails(Long productId);

    /**
     * 添加产品信息
     * @param productDto
     * @return
     */
    Integer insertProduct(ProductDto productDto);


    /**
     * 编辑商品信息
     * @param productDetailsVo
     * @return
     */
    Integer updateProduct(ProductDetailsVo productDetailsVo);


    /**
     * 修改产品状态
     * @param productIdList 产品ID 集合
     * @param state 状态
     * @return
     */
    Integer updateStateProduct(List<Long> productIdList,Integer state);

    /**
     * 获取产品库存信息
     * @return
     */
    ProductTypeVo selectProductSum();
}
